热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(KDD2021|华为AutoDis:连续特征的Embedding学习框架)

作者|Chilia哥伦比亚大学・搜索推荐整理|NewBeeNLP目前大多数的CTR模型采用的是Embedding和FeatureInteraction(以下


作者|Chilia


哥伦比亚大学搜索推荐


整理


目前,大多数CTR模型采用Embedding和Feature Interaction(以下简称FI )体系结构,如下图所示。


在目前的大多数研究中,更复杂的网络用于更好地捕获显式或隐式「特征交互」,包括Wide Deep的Wide部分、DCN的CrossNet和DIN注意机制另一个主要部分「Embedding模块」同样重要的原因有两个:


1 )嵌入式模块为FI模块的「上游模块」,直接影响FI模块的效果;


2 ) CTR模型的许多参数是嵌入式模块(巨大的嵌入式表! 对模型效果有非常重要的影响。


但是,嵌入式模块很少做特别是对连续特征嵌入式的深入研究。 现有处理方式由于是其硬离散化方式,因此通常是suffer from low model capacity。 本文提出的AutoDis框架具有高模型容量、端到端训练和单次优化。


华为在KDD'21上提出了自动dis框架


An Embedding Learning Framework for Numerical Features in CTR Prediction[1]


它已经用于华为主流广告平台,在线A/B测试提高了CTR的2.1%和eCPM(effective cost per mille )的2.7%。


1、连续特征处理CTR估计模型的输入一般包括连续特征和离散特征两部分。 对于离散特征,嵌入式look-up操作通常会将其转换为相应的嵌入式。 然后,我们将讨论谷歌对离散特征嵌入式的改进)。


对连续特征的处理可归纳为无嵌入式、现场嵌入式、离散化3种。


1.1否嵌入式否嵌入式是指不对连续特征进行嵌入式操作,而保留原始数值。 例如,谷歌播放的Wide Deep将原始值直接用作输入; 另一方面,在Youtube DNN中,将原始值转换为平方、根号等进行输入。


对这种连续特征不进行嵌入式的方法,由于模型容量有限,通常难以有效地捕捉连续特征中的信息。


1.2 fieldembeddingfieldembedding是指,无论同一字段采用哪个值,都共享同一嵌入式,并将特征值乘以相应的嵌入式输入作为模型。


其中,field embedding。


由于使用同一field的特征「共享」同一embedding,并基于不同的可能值对embedding进行3358www.Sina.com/,所以这种方法的表达能力也受到限制


1.3离散化离散化离散化连续特征是工业界最常用的方法。 这种方法通常分为两个阶段:首先将连续特征转换为对应的「缩放」,然后在「离散值」将其转换为对应的嵌入式。


首先讨论一个问题,为什么需要将连续的特征离散化呢? 还是离散化为什么会带来比通常更好的效果? 关于这个问题的探讨,可以参考知乎

问题:

- https://www.zhihu.com/question/31989952/answer/54184582

总的来说,将连续特征进行离散化给模型「引入了非线性」,能够「提升模型表达能力」,而对于离散化的方式,常用的有以下几种:

1) EDD/EFD (Equal Distance/Frequency Discretization):即等宽/等深分箱。对于等宽分箱,首先基于特征的最大值和最小值、以及要划分的桶的个数 ,来计算每个样本取值要放到哪个箱子里。

对于等深分箱,则是基于数据中特征的频次进行分桶,每个桶内特征取值的个数是大致相同的。

2)LD (Logarithm Discretization):对数离散化,其计算公式如下:

3)TD (Tree-based Discretization):基于树模型的离散化,如使用GBDT+LR来将连续特征分到不同的节点。这就完成了离散化。

「离散化方法的缺点:」

TPP (Two-Phase Problem):将特征分桶的过程一般使用启发式的规则(如EDD、EFD)或者其他模型(如GBDT),无法与CTR模型进行一起优化,即「无法做到端到端」训练;

SBD (Similar value But Dis-similar embedding):对于边界值,两个相近的取值由于被分到了不同的桶中,导致其embedding可能相差很远;

DBS (Dis-similar value But Same embedding):对于同一个桶中的边界值,两边的取值可能相差很远,但由于在同一桶中,其对应的embedding是完全相同的。

上述的三种局限可以通过下图进一步理解:

SBD: 40和41岁没有多大区别,但是却有完全不同的embedding;DBS: 18和40岁差距甚远,但是embedding却一模一样!

1.4 总结

上述三种对于连续特征的处理方式的总结如下表所示:

可以看到,无论是何种方式,都存在一定的局限性。而本文提出了AutoDis框架,具有「高模型容量」「端到端训练」「每个特征取值具有独立表示」的特点,接下来对AutoDis进行介绍。

2、AutoDis介绍

AutoDis的全称为「Auto」matic end-to-end embedding learning framework for numerical features based on soft 「dis」cretization.

AutoDis是一种pluggable embedding framework,可以和现有的深度结构很好的兼容:

Autodis用于做连续特征的embedding,如图中的Age和Height

为了实现高模型容量、端到端训练,每个特征取值具有独立表示,AutoDis设计了三个核心的模块,分别是「Meta-Embeddings、automatic Discretization和 Aggregation」模块。

2.1 Meta-Embeddings

为了提升model capacity,一种朴素的处理连续特征的方式是给每一个特征取值赋予一个独立的embedding。显然,这种方法参数量巨大(因为你可以有无穷个连续特征取值!),无法在实践中进行使用。另一方面,Field Embedding对同一域内的特征赋予相同的embedding,尽管降低了参数数量,但model capacity也受到了一定的限制。

为了平衡参数数量和模型容量,AutoDis设计了Meta-embedding模块: 对于第 个连续特征,对应 个Meta-Embedding(可以看作是分 个桶,每一个桶对应一个embedding)。第j个特征的Meta-Embedding表示为:

对于连续特征的一个具体取值,则是通过一定方式将这 个embedding进行聚合。相较于Field Embedding这种每个field只对应一个embedding的方法,AutoDis中每一个field对应 个embedding,提升了模型容量;同时,参数数量也可以通过 进行很好的控制。

2.2 Automatic Discretization

Automatic Discretization模块可以对连续特征进行「自动的离散化」,实现了「离散化过程的端到端训练」。具体来说,对于第 个连续特征的具体取值 ,首先通过两层神经网络进行转换,得到 长度的向量。下图的例子假设有41个特征,每个特征分配 个桶

最后得到的 需要经过某种softmax变成概率分布:

传统的离散化方式是将特征取值分到某一个具体的桶中,即对每个桶的概率进行「argmax」,但这是一种无法进行梯度回传的方式,是硬离散化。而上式可以看作是一种软离散化(soft discretization)。对于温度系数 ,当其接近于0时,得到的分桶概率分布接近于one-hot,当其接近于无穷时,得到的分桶概率分布近似于均匀分布。这种方式也称为softargmax。

至此,我们得到了 个桶的embedding以及概率分布。

2.3 Aggregation Function

根据前两个模块,已经得到了每个桶的embedding,以及某个特征取值对应分桶的probability distribution,接下来则是如何选择合适的Aggregation Function对二者进行「聚合」。论文提出了如下几种方案:

Max-Pooling:这种方式即「hard」 selection的方式,选择概率最大的分桶对应的embedding。前面也提到,这种方式会遇到SBD和DBS的问题。

Top-K-Sum:将概率最大的K个分桶对应的embedding,进行sum-pooling。这种方式不能从根本上解决DBS的问题,同时得到的最终embedding也没有考虑到具体的概率取值。

Weighted-Average:根据每个分桶的概率对分桶embedding进行加权求和,这种方式确保了每个不同的特征取值都能有其对应的embedding表示。同时,相近的特征取值往往得到的分桶「概率分布也是相近的」,那么其得到的embedding也是相近的,可以有效解决SBD和DBS的问题。

所以,其实就是对 个桶的embedding进行加权求和。

2.4 模型训练

模型的训练过程同一般的CTR过程相似,采用二分类的logloss指导模型训练,损失如下:

3、实验结果及分析

最后来看一下实验结果,离线和线上均取得了一点微小的提升:

那么,AutoDis是否有效解决了SBD和DBS的问题呢?实验结果也印证了这一点:

右图:等深分箱,不同的取值都是分开的点,没有相似度的联系;左图:Autodis,相似的取值聚在一起,说明端到端的方法把握了数值的相似性

本文参考资料

[1]

An Embedding Learning Framework for Numerical Features in CTR Prediction: https://arxiv.org/pdf/2012.08986.pdf

END -



数据不平衡问题都怎么解?

2021-11-29

自然语言处理「迷惑行为大赏」第二季

2021-11-28

2021 互联网公司时薪排行榜出炉!微软、美团很不错

2021-11-27

2W字长文 | 漫谈工业界图神经网络推荐系统

2021-11-26


推荐阅读
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • 程度|也就是_论文精读:Neural Architecture Search without Training
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文精读:NeuralArchitectureSearchwithoutTraining相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • 深度学习与神经网络——邱锡鹏
    深度学习与神经网络——邱锡鹏-一、绪论人工智能的一个子领域神经网络:一种以(人工))神经元为基本单元的模型深度学习:一类机器学习问题,主要解决贡献度分配问题知识结构:路线图:顶 ... [详细]
  • 1Lock与ReadWriteLock1.1LockpublicinterfaceLock{voidlock();voidlockInterruptibl ... [详细]
  • https:github.comdarcyclarkeFront-end-Developer-Interview-QuestionstreemasterChinese#refere ... [详细]
author-avatar
micheals
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有